function ajax (url){
  return new Promise(function(resolve, reject){
    var xhr = new XMLHttpRequest()
    xhr.open('GET', url)
    xhr.responseType = 'json'
    xhr.onload = function() { // 请求完成后
      if (this.status === 200) {
        resolve(this.response)
      }else{
        reject(new Error(this.statusText))
      }
    }
    xhr.send() // 开始执行
  })
}

// Promise.resolve('foo')
//   .then( value => {
//     console.log(value)
//   })


// // 等价于

// new Promise( (resolve, reject) => {
//   resolve('foo')
// })

// var promise = ajax('/api/users.json')
// var promise2 = Promise.resolve(promise)
// console.log(promise === promise2)

// thenable 接口，了解即可
// Promise.resolve({
//   then: function(onFulfilled, onRejected) {
//     onFulfilled('foo')
//   }
// })
//   .then(value => {
//     console.log(value)
//   })


// 创建一个一定是失败的promise的对象
Promise.reject(new Error('rejected'))
  .catch(err => {
    console.log(err)
  })